"use strict";

const Controller = require("egg").Controller;

/**
 * @Controller 班级管理
 */
class GradeController extends Controller {
    /**
     * @jwt
     * @summary 班级列表
     * @description 获取班级列表
     * @router get /grades
     * @response 200 BaseResponse 请求成功
     */
    async index() {
        // 获取列表数据
        const res = await this.service.grade.readList();
        // 返回响应
        this.ctx.helper.send(200, res);
    }

    /**
     * @jwt
     * @summary 创建班级
     * @description 创建一个班级
     * @router post /grades
     * @request body CreateGradeRequest 包含班级信息的请求体对象
     * @response 200 BaseResponse 请求成功
     */
    async create() {
        // 接收并校验参数
        this.ctx.validate(this.ctx.rule.CreateGradeRequest);
        // 保存数据库
        await this.service.grade.add(this.ctx.request.body);
        // 响应成功
        this.ctx.helper.send(201);
    }
}

module.exports = GradeController;
